前提

  • Webサーバ
    • ポート443でnginxが待ち受けている。
    • cloudflare tunnelsを利用している。

発生する問題

nginxでアクセスログを記録する場合、リクエスト元が全てcloudflareのIPアドレスで記録されてしまうため、アクセスログとして残すには不十分である。

解決方法

cloudflareのネットワーク空間からのリクエストの場合、実際のIPアドレスを取得するようにする。
実際のIPアドレスはCF-Connecting-IPヘッダーに格納されている。
これを使うと便利。 https://github.com/ergin/nginx-cloudflare-real-ip